<?php namespace app\admin\controller;
/**
 * 插件管理
 * Class Plugin
 * @package app\admin\controller
 */
class Plugin {
    //插件列表
    public function lists(){

    }
    public function post() {
        if ( IS_POST ) {
            Validate::make( [
                [ 'title', 'required', '插件中文标题不能为空' ],
                [ 'author', 'required', '作者不能为空' ],
                [ 'name', 'regexp:/^[a-z]+$/', '标识不能为空' ],
                [ 'version', 'required', '版本号不能为空' ],
            ] );
            $name = Request::post( 'name' );
            //检测插件是否已经安装
            if ( Db::table( 'plugin' )->where( 'name', $name )->get() ) {
                message( '插件已经存在,请更换标识', '', 'warning' );
            }
            //创建插件文件
            if(!mkdir( 'module/' . $_POST['name'].'/tem', 0755, TRUE )){
                message('目录创建失败','','error');
            }
            $siteFile
                = <<<str
<?php namespace module\\{$name};

use module\HdSite;

class Site extends HdSite {
}
str;
            file_put_contents( 'module/' . $name . '/Site.php', $siteFile );
            //创建消息回复文件
            $processFile
                = <<<str
<?php namespace module\\{$name};
class Process {
	public function handler( \$kid ) {
	}
}
str;
            file_put_contents( 'module/' . $name . '/Process.php', $processFile );
            //处理微信文本消息,非关键词
            if ( $_POST['is_handler'] == 1 ) {
                $handler
                    = <<<str
<?php namespace module\\{$name};
class Handler {
	public function run(\$content) {
	}
}
str;
                file_put_contents( 'module/' . $name . '/Handler.php', $handler );
            }
            //把模块入库
            $model = new \system\model\Plugin();
            $model->save( Request::post() );
            message( '插件创建成功' ,'lists','success');
        }

        return view();
    }
}